package jch.learn.java.basics.chapter3.inside;

/**
 * 内部类
 * @author: 金迩道
 * @create: 2019/09/05 23:26
 **/
public class InsideClass {
    /**
     * 公开的内部类
     */
    public class Inside{
        /*内部非静态类 不能声明主方法（入口方法）*/
      /*public static void main(String[] args) {
            System.out.println("test");
        }*/

        public void test(){
            System.out.println("test");
        }
    }

    /**
     * 公开的内部静态类
     */
    public static class Inside1{
        public static void main(String[] args) {
            System.out.println("test");
        }
    }

    /**
     * 私有内部类
     * private 修饰的内部类 仅供其上级类内部调用
     */
    private class Inside2{
        /*public static void main(String[] args) {

        }*/
    }

    /**
     * 私有静态内部类
     */
    private static class Inside3{
        public static void main(String[] args) {
            System.out.println("test");
        }
    }

    /**
     * 受保护的内部类
     */
    protected class Inside4{
        /*public static void main(String[] args) {

        }*/
    }

    /**
     * 默认的内部类
     * 可在同一包下被调用
     *  默认非静态内部类 无法在同一包下创建实例 也无法在外部包下创建实例
     */
    class Inside5{
        /*public static void main(String[] args) {

        }*/

        public void test(){
            System.out.println("test");
        }
    }

    /**
     * 静态默认修饰符内部类
     */
    static class Inside6{
        public static void main(String[] args) {
            System.out.println("test");
        }
    }
}
